/*
 * Projet Java / UML -- Trombinoscope - Février / Mars 2012
 * Virginie Messe -- William Huber
 */
package outils;


import java.sql.Connection;


/**
 *
 * Classe abstraite générique dont vont hériter les DAOs correspondant 
 * à chaque table dans la base de données.
 * 
 * @author Virginie Messe & William Huber
 */
public abstract class DAO<T> {

	public Connection connect = ConnexionMySQL.getInstance();
	
	/**
	 * Permet de récupérer un objet via son id
         * 
	 * @param id L'id de l'objet
	 * @return L'objet en question
	 */
	public abstract T find(int id);
	
	/**
	 * Permet de créer une entrée dans la base de données
	 * par rapport à un objet
         * 
	 * @param obj L'objet que l'on veut ajouter dans la base
	 */
	public abstract T create(T obj);
	
	/**
	 * Permet de mettre à jour les données d'une entrée dans la base 
         * 
	 * @param obj L'objet dont on veut mettre les données à jour
	 */
	public abstract T update(T obj);
	
	/**
	 * Permet la suppression d'une entrée de la base
         * 
	 * @param int id que l'on veut supprimer dans la base
	 */
	public abstract void delete(int id);
        
        /**
	 * Retourne la valeur maximale des id de la table en question
         * 
	 * @param
	 */
	public abstract int getMax();
}
